第3世代 Xeon (Cooper Lake)を搭載する「m6i」インスタンスのOpenSSL性能を測定してみた
AWSチームのすずきです。
2021年8月にリリースされた 第3世代 Xeon Scalable Processors (Cooper Lake)を搭載する m6iインスタンス。 そのCPU性能を確認するためにOpenSSLの処理性能を計測、従来のEC2インスタンスと比較する機会がありましたので紹介させていただきます。
計測対象
以下のEC2インスタンスを計測対象としました。
- インスタンスタイプ
インスタンスタイプ | CPU model | 提供時期 |
---|---|---|
m6i.large | Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz | 2021/08 |
m5zn.large | Intel(R) Xeon(R) Platinum 8151 CPU @ 3.40GHz | 2020/12 |
m5a.large | AMD EPYC 7571 | 2018/11 |
z1d.large | Intel(R) Xeon(R) Platinum 8151 CPU @ 3.40GHz | 2018/07 |
m5.large | Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz | 2017/12 |
m4.large | Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz | 2015/06 |
- リージョン: us-west-2(オレゴン)
- AMI: ubuntu-focal-20.04-amd64-server-20210430 ( ami-03d5c68bab01f3496)
計測方法
OpenSSLのスピード測定を利用、16KBの測定値を利用して比較を行いました。
- ハードウェア暗号エンジン支援なし、1コア性能測定
openssl speed -elapsed aes-128-cbc
- ハードウェア暗号エンジン支援なし、2コア性能測定
openssl speed -elapsed -evp aes-128-gcm -multi 2 openssl speed -elapsed -evp aes-128-ctr -multi 2 openssl speed -elapsed -evp chacha20 -multi 2
結果
- 1コア性能測定
インスタンスタイプ | aes-128 cbc | m4比較 | m5比較 |
---|---|---|---|
m6i.large | 248020 | 1.33 | 1.14 |
m5zn.large | 312781 | 1.68 | 1.44 |
m5a.large | 168214 | 0.90 | 0.77 |
z1d.large | 280444 | 1.50 | 1.29 |
m5.large | 217311 | 1.17 | 1.00 |
m4.large | 186460 | 1.00 | 0.86 |
- ハードウェア暗号エンジン有効
インスタンスタイプ | aes-128-gcm | m4比較 | aes-128-ctr | m4比較 | chacha20 | m4比較 |
---|---|---|---|---|---|---|
m6i.large | 5474386 | 1.75 | 10001782 | 2.36 | 6384899 | 2.52 |
m5zn.large | 7007464 | 2.24 | 7183084 | 1.70 | 6345375 | 2.50 |
m5a.large | 3083479 | 0.98 | 7994277 | 1.89 | 1437734 | 0.57 |
z1d.large | 6251593 | 2.00 | 6383315 | 1.51 | 5648291 | 2.23 |
m5.large | 4837872 | 1.54 | 4909755 | 1.16 | 4374593 | 1.73 |
m4.large | 3133094 | 1.00 | 4234554 | 1.00 | 2534675 | 1.00 |
まとめ
「m6i」インスタンスを紹介するAWSブログで、M5インスタンスと比較して15%のコストパフォーマンス改善が紹介されていましたが、 これを裏付けるコア性能の向上が確認できました。
offer up to 15% better compute price performance over M5 instances
また、「m6i」インスタンスに搭載されている第3世代 Xeon Scalable Processors (Cooper Lake)。 AI、ディープラーニング性能の強化がアピールされていますが、一般的な暗号処理性能についても強化されている模様です
Customers refreshing aging infrastructure can expect an average estimated gain of 1.9 times on popular workloads and up to 2.2 times more VMs compared with 5-year-old 4-socket platform equivalents.
「m6i」が東京、大阪リージョンで早期に提供開始される事と、 最新世代の各社のCPUが コンピューティング最適化、メモリ最適化など他のインスタンスファミリーでも利用可能になることを心待ちにしたいと思います。
実行ログ
- m6i.large 計測時のログ
cat /proc/cpuinfo
processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 106 model name : Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz stepping : 6 microcode : 0xd0002b1 cpu MHz : 3504.411 cache size : 55296 KB physical id : 0 siblings : 2 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 27 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjus t bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetb v1 xsaves wbnoinvd ida arat avx512vbmi pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid md_clear flush_l1d arch_capabilities bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs bogomips : 5799.95 clflush size : 64 cache_alignment : 64 address sizes : 46 bits physical, 48 bits virtual power management:
uname -a openssl version openssl speed -elapsed aes-128-cbc openssl speed -elapsed -evp aes-128-gcm -multi 2 openssl speed -elapsed -evp aes-128-ctr -multi 2 openssl speed -elapsed -evp chacha20 -multi 2
Linux ip-172-31-11-242 5.4.0-1045-aws #47-Ubuntu SMP Tue Apr 13 07:02:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux OpenSSL 1.1.1f 31 Mar 2020 Forked child 0 Forked child 1 Got: +H:16:64:256:1024:8192:16384 from 0 Got: +F:22:aes-128-gcm:252046224.00:635268117.33:1602258346.67:2262330709.33:2702281386.67:2739295936.21 from 0 Got: +H:16:64:256:1024:8192:16384 from 1 Got: +F:22:aes-128-gcm:250475280.00:633245994.67:1598706944.00:2252849493.33:2698218154.67:2735090346.67 from 1 OpenSSL 1.1.1f 31 Mar 2020 built on: Mon Mar 22 11:37:17 2021 UTC options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-Juj39H/openssl-1.1.1f=. -fstack-p rotector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -D OPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM - DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 evp 502521.50k 1268514.11k 3200965.29k 4515180.20k 5400499.54k 5474386.28k Forked child 0 Forked child 1 Got: +H:16:64:256:1024:8192:16384 from 0 Got: +F:22:aes-128-ctr:283207061.33:872076629.33:2325821902.34:3933885388.63:4880050858.67:5005945514.67 from 0 Got: +H:16:64:256:1024:8192:16384 from 1 Got: +F:22:aes-128-ctr:284341370.67:875266304.00:2331419989.33:3929538218.67:4908556288.00:4995836586.67 from 1 OpenSSL 1.1.1f 31 Mar 2020 built on: Mon Mar 22 11:37:17 2021 UTC options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-Juj39H/openssl-1.1.1f=. -fstack-p rotector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -D OPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM - DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 evp 567548.43k 1747342.93k 4657241.89k 7863423.61k 9788607.15k 10001782.10k Forked child 0 Forked child 1 Got: +H:16:64:256:1024:8192:16384 from 0 Got: +F:22:chacha20:210549258.67:508344021.33:1884501930.67:3064901973.33:3178291200.00:3195781120.00 from 0 Got: +H:16:64:256:1024:8192:16384 from 1 Got: +F:22:chacha20:210894320.00:511101845.33:1894150997.33:3066898432.00:3183266474.67:3189118293.33 from 1 OpenSSL 1.1.1f 31 Mar 2020 built on: Mon Mar 22 11:37:17 2021 UTC options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-Juj39H/openssl-1.1.1f=. -fstack-p rotector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -D OPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM - DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 evp 421443.58k 1019445.87k 3778652.93k 6131800.41k 6361557.67k 6384899.41k OpenSSL 1.1.1f 31 Mar 2020 built on: Mon Mar 22 11:37:17 2021 UTC options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-Juj39H/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128 cbc 238474.44k 245293.46k 247094.36k 247418.20k 247922.69k 248020.99k Forked child 0 Forked child 1 Got: +H:16:64:256:1024:8192:16384 from 0 Got: +F:22:aes-128-cbc:392316112.00:848056277.33:1187408298.67:1336972629.33:1379892050.50:1391012522.67 from 0 Got: +H:16:64:256:1024:8192:16384 from 1 Got: +F:22:aes-128-cbc:393765248.00:854970624.00:1192783360.00:1342523050.67:1390632960.00:1394174634.67 from 1 OpenSSL 1.1.1f 31 Mar 2020 built on: Mon Mar 22 11:37:17 2021 UTC options:bn(64,64) rc4(16x,int) des(int) aes(partial) blowfish(ptr) compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-Juj39H/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 evp 786081.36k 1703026.90k 2380191.66k 2679495.68k 2770525.01k 2785187.16k